//封装db数据库
//加载mysql数据库
let mysql = require("mysql");
//数据库配置
let config = {
    host: "localhost", //数据库连接地址 
    port: 3306,//数据库端口号
    user: "root",//数据库用户名
    password: "root",//数据库密码
    database: "student_user",//选择要操作的库房名
}
//声明一个类名
class Db {
    //定义构造方法
    constructor() {
        //当前对象下新增属性名 connection
        //连接数据库配置
        this.connection = mysql.createConnection(config);
        //判断是否连接
        this.connection.connect((err) => {
            if (err) {
                console.log("数据库连接失败")
            } else {
                console.log("数据库连接成功")
            }
        })
    }
    //定义成员方法
    //参数:sql  执行增  删 该  查  语句
    query(sql) {
        let p = new Promise((resolve, reject) => {
            //执行sql语句
            /*
            第一个参数:执行sql语句
            第二个参数:回调函数
                      err:返回成功或者失败
                      doc:返回执行结果 
            */
            this.connection.query(sql, (err, doc) => {
                if (err) {
                    //失败状态
                    reject([err, null])
                } else {
                    //成功状态
                    resolve([null, doc])
                }
            })
        })
        return p;
    }
}
//实例化 类
let db = new Db();

module.exports = db;

// //外部执行sql语句
// async function fn() {
//     let sql = "select * from stu_user";
//     try {
//         let a = await db.query(sql);
//         console.log(a);
//     } catch (err) {
//         console.log(err)
//     }
// }
// fn()